home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
ms_sh21s.zip
/
SH210
/
INCLUDE
/
SYS
/
DIRENT.H
next >
Wrap
C/C++ Source or Header
|
1992-12-14
|
1KB
|
49 lines
/* <sys/dirent.h> -- file system independent directory entry (SVR3) */
#ifndef _SYS_DIRENT_H
#define _SYS_DIRENT_H
#ifndef MSDOS
#define MAXNAMLEN 512 /* maximum filename length */
#else
#define MAXNAMLEN 13 /* maximum filename length */
#endif
#ifndef NAME_MAX
#define NAME_MAX (MAXNAMLEN - 1)
#endif
struct dirent /* data from getdents()/readdir() */
{
ino_t d_ino; /* inode number of entry */
off_t d_off; /* offset of disk directory entry */
ushort d_reclen; /* length of this record */
#ifndef MSDOS
char d_name[1]; /* name of file */
#else
char d_name[MAXNAMLEN + 1];
#endif
};
#ifdef BSD_SYSV /* (e.g., when compiling getdents.c) */
extern struct dirent __dirent; /* (not actually used) */
/* The following is portable, although */
/* rather silly. */
#define DIRENTBASESIZ (__dirent.d_name - (char *)&__dirent.d_ino)
#else
/* The following nonportable ugliness could have been avoided by defining
* DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments.
* There shouldn't be any problem if you avoid using the DIRENTSIZ() macro.
*/
#define DIRENTBASESIZ (((struct dirent *)0)->d_name \
- (char *)&((struct dirent *)0)->d_ino)
#endif
#define DIRENTSIZ(namlen) ((DIRENTBASESIZ + sizeof(long) + (namlen)) \
/ sizeof(long) * sizeof(long))
#endif